package com.atguigu.file;

import org.junit.Test;

import java.io.File;
/*
File类的使用:
1.File类的一个对象，代表一个文件或一个文件目录(俗称:文件夹)
2.File类是声明在java.io包下
 */
public class FileTest1 {
/*
1.如何创建File类的实例
File(String pathname)
File(String parentPath,String childPath)

2.
相对路径:相较于某个路径下指明的路径，即相对路径
绝对路径:绝对路径即包含盘符在内的文件或文件目录的路径
3.路径分隔符
windows:\\
unix:/
 */
    @Test
    public void test1(){
        //构造器一
       File file1=new File("hello.txt"); //相对于当前module
         File file2=new File("D:\\Git\\java\\JavaSenior\\day_05\\he.txt"); //绝对路径
        System.out.println(file1);
        System.out.println(file2);
        //构造器二
        File file3=new File("D:\\Git\\java","JavaSenior");//文件目录
        System.out.println(file3);
        //构造器三
        File file4=new File(file3,"hi.txt"); //相当于在JavaSenior下面的一个文件
        System.out.println(file4);
    }
    /*
    适用于文件目录:
    public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
    public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
      */
    @Test
    public void test2(){
        File file1=new File("hello.txt");
        File file2=new File("D:\\io\\hi.txt");
        System.out.println(file1.getAbsolutePath());//获取绝对路径
        System.out.println(file1.getPath());  //获取路径
        System.out.println(file1.getName()); //获取名字
        System.out.println(file1.getParent()); //获取上层文件目录，若无，返回null
        System.out.println(file1.length()); //获取文件长度(字节数),不能获取目录的长度
        System.out.println(file1.lastModified()); //获取最后一次的修改时间，返回值为毫秒数

        System.out.println();

        System.out.println(file2.getAbsolutePath());
        System.out.println(file2.getPath());
        System.out.println(file2.getName());
        System.out.println(file2.getParent());
        System.out.println(file2.length());
        System.out.println(file2.lastModified());
    }
    @Test
    public void test3(){
        File file=new File("D:\\Git\\java\\JavaSenior");
        String[] list = file.list();
        for(String fileName:list){
            System.out.print(fileName+" ");
        }
        File[] listFiles = file.listFiles();
        for(File f:listFiles){
            System.out.println(f);
        }
        /*
        public boolean renameTo(File dest):把文件重命名为指定的文件路径
        比如:file1.renameTo(file2)
        要想保证返回true,需要file1在硬盘中是存在的，file2不能在硬盘中存在
         */
    }
}
